import request from "./index";

// banner
// 可选参数 :
// type:资源类型,对应以下类型,默认为 0 即 PC
// 0: pc 1: android 2: iphone 3: ipad
export const _getBanner = (type = 2) => {
    return request.get("/banner", {
        params: {
            type,
            timestamp: new Date().getTime()
        }
    })
}
// 所有榜单
export const _getTopList = () => {
    return request.get("/toplist/detail", {
        params: {
            timestamp: new Date().getTime()
        }
    })
}
// 获取歌单详情
// 说明 : 歌单能看到歌单名字, 但看不到具体歌单内容 , 调用此接口 , 传入歌单 id, 可 以获取对应歌单内的所有的音乐(未登录状态只能获取不完整的歌单,登录后是完整的)，但是返回的 trackIds 是完整的，tracks 则是不完整的，可拿全部 trackIds 请求一次 song/detail 接口获取所有歌曲的详情
// 必选参数 : id : 歌单 id
// 可选参数 : s : 歌单最近的 s 个收藏者,默认为 8
// 接口地址 : /playlist/detail
export const _getPlayListDetail = (id, s = 8) => {
    return request.get("/playlist/detail", {
        params: {
            id,
            s,
            timestamp: new Date().getTime()
        }
    })
}

// 获取音乐 url - 新版
// 必选参数 : id : 音乐 id level: 播放音质等级, 分为 standard => 标准, exhigh=>极高, lossless=>无损, hires=>Hi-Res
// 接口地址 : /song/url/v1
// 调用例子 : /song/url/v1?id=33894312&level=exhigh /song/url/v1?id=405998841,33894312&level=lossless
export const _getSongURL = (id, level = 'standard') => {
    return request.get("/song/url/v1", {
        params: {
            id,
            level,
            timestamp: new Date().getTime()
        }
    })
}

// 获取歌词
// 说明 : 调用此接口 , 传入音乐 id 可获得对应音乐的歌词 ( 不需要登录 )
// 必选参数 : id: 音乐 id
// 接口地址 : /lyric
export const _getLyric = (id)=>{
    return request.get("/lyric", {
        params: {
            id,
            timestamp: new Date().getTime()
        }
    })
}
// 歌曲评论
// 说明 : 调用此接口 , 传入音乐 id 和 limit 参数 , 可获得该音乐的所有评论 ( 不需要登录 )
// 必选参数 : id: 音乐 id
// 可选参数 : limit: 取出评论数量 , 默认为 20
// offset: 偏移数量 , 用于分页 , 如 :( 评论页数 -1)*20, 其中 20 为 limit 的值
// before: 分页参数,取上一页最后一项的 time 获取下一页数据(获取超过 5000 条评论的时候需要用到)
// 调用例子 : /comment/music?id=186016&limit=1 对应晴天评论
export const _getComment = (id,limit=20,offset=0) =>{
    offset = offset * limit
    return request.get("/comment/music",{
        params:{
            id,
            limit,
            offset,
            timestamp: new Date().getTime()
        }
    })
}
// 热门评论
// 说明 : 调用此接口 , 传入 type, 资源 id 可获得对应资源热门评论 ( 不需要登录 )// 必选参数 : id: 音乐 id
// type: 数字 , 资源类型 , 对应歌曲 , mv, 专辑 , 歌单 , 电台, 视频对应以下类型
// 0: 歌曲 1: mv 2: 歌单 3: 专辑 4: 电台 5: 视频
// 可选参数 : limit: 取出评论数量 , 默认为 20
// offset: 偏移数量 , 用于分页 , 如 :( 评论页数 -1)*20, 其中 20 为 limit 的值
// before: 分页参数,取上一页最后一项的 time 获取下一页数据(获取超过 5000 条评论的时候需要用到)
export const _getHotComment = (id,type=0,limit=20,offset=0) =>{
    offset = offset * limit
    return request.get("/comment/hot",{
        params:{
            id,
            type,
            limit,
            offset,
            timestamp: new Date().getTime()
        }
    })
} 

// 推荐歌单
// 说明 : 调用此接口 , 可获取推荐歌单
// 可选参数 : limit: 取出数量 , 默认为 30 (不支持 offset)
// 接口地址 : /personalized
// 调用例子 : /personalized?limit=1
export const _getPersonalized = (limit=30) =>{
    return request.get("/personalized",{
        params:{
            limit,
            timestamp: new Date().getTime()
        }
    })
}
// 楼层评论
// 说明 : 调用此接口 , 传入资源 parentCommentId 和资源类型 type 和资源 id 参数, 可获得该资源的歌曲楼层评论
// 必选参数 :
// parentCommentId: 楼层评论 id
// id : 资源 id
// type: 数字 , 资源类型 , 对应歌曲 , mv, 专辑 , 歌单 , 电台, 视频对应以下类型
// 0: 歌曲 1: mv 2: 歌单 3: 专辑 4: 电台 5: 视频
// 可选参数 : limit: 取出评论数量 , 默认为 20
// time: 分页参数,取上一页最后一项的 time 获取下一页数据
// 调用例子 : /comment/floor?parentCommentId=1438569889&id=29764564&type=0
export const _getParentComment = (parentCommentId,id,type=0) =>{
    return request.get("/comment/floor",{
        params:{
            parentCommentId,
            id,
            type,
            timestamp: new Date().getTime()
        }
    })
}